Introducción
En un
mundo cada vez más globalizado, comprender las diferencias y similitudes
entre países en términos de desarrollo económico, social y ambiental es
fundamental para la toma de decisiones y formulación de políticas
públicas. Este proyecto realiza un análisis exploratorio de datos (EDA)
sobre el conjunto de datos World Development Indicators (WDI) del
Banco Mundial, con el objetivo de descubrir patrones, relaciones y
tendencias clave entre distintas variables de desarrollo.
Descripción del Problema
La
gran cantidad de indicadores disponibles en los datos del Banco Mundial
permite explorar preguntas como:
• ¿Cómo ha evolucionado el
acceso a la educación y la salud en distintas regiones?
• ¿Existe
una relación entre el PIB per cápita y la esperanza de vida?
• ¿Qué
países muestran anomalías en sus indicadores ambientales?
• ¿Cómo se
relacionan las múltiples dimensiones del desarrollo en el tiempo?
•
¿Se relaciona el nivel de alfabetización con la esperanza de
vida?
Este proyecto se propone utilizar técnicas de visualización y
análisis exploratorio para generar insights significativos
que nos ayuden a responder estas preguntas y, al mismo tiempo, permitir
que el lector saque sus propias conclusiones.
Fuentes
Este proyecto se basa mayormente en el conjunto de datos World
Development Indicators (WDI), disponible públicamente en World Bank
Data360. Contiene más de mil indicadores para más de 200 países desde
1960 hasta la actualidad.
Los indicadores seleccionados fueron:
• PIB per cápita
(USD actuales) – NY.GDP.PCAP.CD
• Esperanza de vida al
nacer (años) – SP.DYN.LE00.IN
• Tasa de alfabetización
(% de adultos) – SE.ADT.LITR.ZS
• Emisiones de CO₂
(toneladas per cápita) – EN.ATM.CO2E.PC
• Población
total – SP.POP.TOTL
• Porcentaje de acceso a servicios
básicos – SH.H2O.BASW.ZS
4)
Análisis Unidimensional
1. Distribución del PIB per cápita (2022)
Distribución: Se observa una distribución asimétrica hacia la
derecha.
Tendencia general:
La mayoría de los países tienen un PIB
per cápita inferior a los $10,000 USD.
Un número reducido de países
como Suiza, Noruega, Catar y Estados Unidos muestran niveles
extremadamente altos (>60,000 USD).
Esto refleja la desigualdad económica global, donde muchos
países siguen en desarrollo mientras que una minoría posee economías
altamente desarrolladas.
2.Esperanza de Vida por Región (2022)
Distribución general:
La gráfica de tipo boxplot muestra las
diferencias en la esperanza de vida al nacer entre regiones geográfica
en el año 2022.
La visualización permite explorar la variabilidad y las diferencias
en la esperanza de vida en distintas partes, destacando tanto los
valores centrales como los valores atípicos en cada región.
Se observa que las regiones de Europa y América del Norte tienen un
rango de esperanza de vida bastante alto y estrecho, mientras que África
Subsahariana muestra una mayor dispersión y valores más
bajos.
Valores extremos (outliers):
Se pueden identificar algunas
regiones con valores atípicos, como países con niveles extremadamente
altos de esperanza de vida (por ejemplo, en Europa o América del
Norte).
Tendencia general:
Regiones como África Subsahariana y
Asia Meridional tienen una media de esperanza de vida más baja y una
gran dispersión, lo que indica disparidades significativas entre los
países dentro de estas regiones.
3. Gráfico de Densidad del CO₂
Muestra la distribución de las emisiones de CO₂ per cápita (excluyendo
LULUCF) a nivel global para el año 2022 que permite una exploración
visual interactiva y detectar países con emisiones inusualmente altas.
.
Distribución: Altamente asimétrica con una larga cola hacia la
derecha.
Tendencia general:
La mayoría de países emiten menos de 5
toneladas de CO₂ per cápita.
Casos extremos como Catar y Emiratos
Árabes Unidos superan las 25 toneladas, destacando como
outliers.
Esto refleja una enorme desigualdad en términos de
responsabilidad ambiental y desarrollo económico.
4. ScatterPlot del PIB vs la Esperanza de Vida
El objetivo de este ScatterPlot es ver la relación entre el
Producto Interno Bruto (PIB) per cápita y la esperanza de vida al nacer
en el año 2022. Este permite identificar patrones y excepciones entre
países.
Tendencias:
Se observa una correlación positiva: los países con mayor PIB
per cápita tienden a tener una mayor esperanza de vida.
Existen excepciones notables, como Estados Unidos, que tiene un PIB
alto pero una esperanza de vida más baja en comparación con otros países
de ingreso similar.
La escala logarítmica permite observar con mayor claridad los
países de bajos y medianos ingresos, que de otro modo quedarían
agrupados.
La relación sugiere que la riqueza permite inversión en salud,
educación y servicios básicos, pero no siempre se traduce directamente
en mejor salud (como en EE.UU. por desigualdades internas y sistema de
salud ineficiente).
5. BubblePlot Alfabetización, Agua y Población (2022)
La
alfabetización impulsa mejores prácticas de higiene y salud. Sin
embargo, la densidad poblacional y la gobernanza influyen en el acceso
al agua.
Relación positiva general: Países más alfabetizados tienen mejor
acceso a agua.
Excepciones en países de alta población: Algunos países grandes
enfrentan retos en cobertura de servicios.
6.Gráfico interactivo en 3D: PIB per cápita, CO₂ per cápita y
esperanza de vida
Países
ricos alta emisión y alta esperanza de vida.
Ejemplos sostenibles Costa Rica con baja emisión y alta
salud.
Hallazgo: Países ricos como EE.UU., Canadá y los del Golfo
presentan altas emisiones con alto PIB. Algunos países como Costa Rica
muestran alta esperanza de vida con menor impacto ambiental, destacando
como casos de desarrollo sostenible.
Muestra el dilema entre desarrollo económico y sostenibilidad
ambiental, pero también destaca que es posible un desarrollo menos
contaminante si se priorizan políticas verdes.
7.Facet grid: Evolución del PIB per cápita (2000–2022) por
región
Tendencias: Asia Oriental (ej. China): crecimiento
acelerado.
África: crecimiento más lento o estancado.
Se utiliza facet_wrap() para mostrar mini líneas de tiempo por
región.
Hallazgos: Asia Oriental ha tenido un crecimiento explosivo ,
mientras que regiones como África han mostrado estancamiento.
El crecimiento asiático responde a industrialización, comercio
exterior y políticas de inversión. África enfrenta desafíos
estructurales persistentes.
8.Panel combinado: Evolución del PIB per cápita (en dólares) de 2000
hasta 2021 en seis países de Centroamérica.
Costa Rica, Nicaragua, Panamá, Guatemala, Honduras y El
Salvador.
Cada una de las cuatro gráficas representa una comparación visual
entre estos países desde una perspectiva diferente, pero todas usando el
mismo indicador económico clave.
Función de la imagen compuesta:
+ Analizar la evolución económica de Centroamérica de forma
comparativa.
+ Identificar qué países han tenido mayor crecimiento en PIB
per cápita.
+ Explorar tendencias, repuntes y caídas económicas a lo largo
del tiempo.
+ Ofrecer una visualización interactiva, útil para estudios
académicos, políticas públicas o análisis económico.
Observaciones de la imagen:
Desigualdad regional: Panamá y Costa Rica consistentemente
tienen un PIB per cápita más alto que el resto de la región, lo que
sugiere mayores niveles de ingreso promedio por persona.
Crecimiento desigual: Aunque todos los países muestran
crecimiento a lo largo de los años, hay marcadas diferencias en la
velocidad y estabilidad del mismo.
Efectos de eventos globales: Por ejemplo, se puede observar un
impacto en todos los países durante el año 2020 (pandemia), seguido de
una recuperación dispar.
Casos específicos: Nicaragua muestra un crecimiento más lento,
mientras que Panamá destaca con una curva más empinada hasta 2019.
Conclusiones
Existe una clara relación entre el ingreso económico de un país y los
indicadores de salud y educación que existen en el mismo.
A pesar de todo, el crecimiento económico no siempre implica
sostenibilidad ambiental en una región o país: hay países que emiten
mucho CO₂ por su estilo de vida industrial y que a sus gobiernos no les
interesa mitigar los efectos que estos tienen.
Se identificaron casos exitosos de desarrollo equilibrado, como Costa
Rica o Vietnam, que sus indicadores reflejan que alcanza un alto
bienestar sin elevado consumo de recursos.
Temas de interés como estos nos pueden dar perspectiva de cómo
funciona el mundo, y como los países gestionan recursos y cómo esto
afecta a su misma población en su estilo de vida y en el tipo de
ambiente que se desarrollan
De forma del proyecto:
El storytelling y la visualización interactiva permiten transformar
datos complejos en historias comprensibles para todo público.
LS0tDQp0aXRsZTogIkFuw6FsaXNpcyBkZWwgRGF0YXNldCBNdW5kaWFsIFdESSBkZWwgQmFuY28gTXVuZGlhbCINCmF1dGhvcjogIk1hdGhldyBDb3JkZXJvIGUgSWFuIFVnYWxkZSINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiAyDQogICAgY29kZV9mb2xkaW5nOiBoaWRlDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9IEZBTFNFfQ0KIyBGaWphciBlbCB3b3JraW5nIGRpcmVjdG9yeSBhbCBkZWwgLlJtZA0KaWYgKGludGVyYWN0aXZlKCkgJiYgcmVxdWlyZU5hbWVzcGFjZSgicnN0dWRpb2FwaSIsIHF1aWV0bHkgPSBUUlVFKSkgew0KICBzZXR3ZChkaXJuYW1lKHJzdHVkaW9hcGk6OmdldEFjdGl2ZURvY3VtZW50Q29udGV4dCgpJHBhdGgpKQ0KfQ0KDQprbml0cjo6b3B0c19jaHVuayRzZXQoDQogIGVjaG8gICAgPSBGQUxTRSwNCiAgbWVzc2FnZSA9IEZBTFNFLA0KICB3YXJuaW5nID0gRkFMU0UNCikNCg0KbGlicmFyeShyZWFkcikNCmxpYnJhcnkoZHBseXIpDQpsaWJyYXJ5KHRpZHlyKQ0KbGlicmFyeShzdHJpbmdyKQ0KbGlicmFyeShwbG90bHkpDQpgYGANCg0KDQpgYGB7ciwgaW5jbHVkZT1GQUxTRX0NCnNvdXJjZSgiSW1wb3J0RGF0YXNldC5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8IS0tIFTDrXR1bG8gcHJpbmNpcGFsIC0tPg0KDQojIEludHJvZHVjY2nDs24NCg0KPGJyPjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCkVuIHVuIG11bmRvIGNhZGEgdmV6IG3DoXMgZ2xvYmFsaXphZG8sIGNvbXByZW5kZXIgbGFzIGRpZmVyZW5jaWFzIHkgc2ltaWxpdHVkZXMgZW50cmUgcGHDrXNlcyBlbiB0w6lybWlub3MgZGUgZGVzYXJyb2xsbyBlY29uw7NtaWNvLCBzb2NpYWwgeSBhbWJpZW50YWwgZXMgZnVuZGFtZW50YWwgcGFyYSBsYSB0b21hIGRlIGRlY2lzaW9uZXMgeSBmb3JtdWxhY2nDs24gZGUgcG9sw610aWNhcyBww7pibGljYXMuIEVzdGUgcHJveWVjdG8gcmVhbGl6YSB1biBhbsOhbGlzaXMgZXhwbG9yYXRvcmlvIGRlIGRhdG9zIChFREEpIHNvYnJlIGVsIGNvbmp1bnRvIGRlIGRhdG9zIDxiPldvcmxkIERldmVsb3BtZW50IEluZGljYXRvcnMgKFdESSk8L2I+IGRlbCBCYW5jbyBNdW5kaWFsLCBjb24gZWwgb2JqZXRpdm8gZGUgZGVzY3VicmlyIHBhdHJvbmVzLCByZWxhY2lvbmVzIHkgdGVuZGVuY2lhcyBjbGF2ZSBlbnRyZSBkaXN0aW50YXMgdmFyaWFibGVzIGRlIGRlc2Fycm9sbG8uDQo8L3NwYW4+DQoNCjxicj48YnI+DQoNCiMgRGVzY3JpcGNpw7NuIGRlbCBQcm9ibGVtYQ0KDQo8YnI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyBmb250LXNpemU6MTZweDsiPg0KTGEgZ3JhbiBjYW50aWRhZCBkZSBpbmRpY2Fkb3JlcyBkaXNwb25pYmxlcyBlbiBsb3MgZGF0b3MgZGVsIEJhbmNvIE11bmRpYWwgcGVybWl0ZSBleHBsb3JhciBwcmVndW50YXMgY29tbzo8YnI+PGJyPg0KJmJ1bGw7IMK/Q8OzbW8gaGEgZXZvbHVjaW9uYWRvIGVsIGFjY2VzbyBhIGxhIGVkdWNhY2nDs24geSBsYSBzYWx1ZCBlbiBkaXN0aW50YXMgcmVnaW9uZXM/PGJyPg0KJmJ1bGw7IMK/RXhpc3RlIHVuYSByZWxhY2nDs24gZW50cmUgZWwgUElCIHBlciBjw6FwaXRhIHkgbGEgZXNwZXJhbnphIGRlIHZpZGE/PGJyPg0KJmJ1bGw7IMK/UXXDqSBwYcOtc2VzIG11ZXN0cmFuIGFub21hbMOtYXMgZW4gc3VzIGluZGljYWRvcmVzIGFtYmllbnRhbGVzPzxicj4NCiZidWxsOyDCv0PDs21vIHNlIHJlbGFjaW9uYW4gbGFzIG3Dumx0aXBsZXMgZGltZW5zaW9uZXMgZGVsIGRlc2Fycm9sbG8gZW4gZWwgdGllbXBvPzxicj4NCiZidWxsOyDCv1NlIHJlbGFjaW9uYSBlbCBuaXZlbCBkZSBhbGZhYmV0aXphY2nDs24gY29uIGxhIGVzcGVyYW56YSBkZSB2aWRhPzxicj48YnI+DQoNCkVzdGUgcHJveWVjdG8gc2UgcHJvcG9uZSB1dGlsaXphciB0w6ljbmljYXMgZGUgPGI+dmlzdWFsaXphY2nDs248L2I+IHkgPGI+YW7DoWxpc2lzIGV4cGxvcmF0b3JpbzwvYj4gcGFyYSBnZW5lcmFyIDxpPmluc2lnaHRzPC9pPiBzaWduaWZpY2F0aXZvcyBxdWUgbm9zIGF5dWRlbiBhIHJlc3BvbmRlciBlc3RhcyBwcmVndW50YXMgeSwgYWwgbWlzbW8gdGllbXBvLCBwZXJtaXRpciBxdWUgZWwgbGVjdG9yIHNhcXVlIHN1cyBwcm9waWFzIGNvbmNsdXNpb25lcy4NCjwvc3Bhbj4NCg0KPGJyPjxicj4NCg0KIyBGdWVudGVzDQo8YnI+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyBmb250LXNpemU6MTZweDsiPg0KRXN0ZSBwcm95ZWN0byBzZSBiYXNhIG1heW9ybWVudGUgZW4gZWwgY29uanVudG8gZGUgZGF0b3MgPGI+V29ybGQgRGV2ZWxvcG1lbnQgSW5kaWNhdG9ycyAoV0RJKTwvYj4sIGRpc3BvbmlibGUgcMO6YmxpY2FtZW50ZSBlbiBXb3JsZCBCYW5rIERhdGEzNjAuIENvbnRpZW5lIG3DoXMgZGUgbWlsIGluZGljYWRvcmVzIHBhcmEgbcOhcyBkZSAyMDAgcGHDrXNlcyBkZXNkZSAxOTYwIGhhc3RhIGxhIGFjdHVhbGlkYWQuPGJyPjxicj4NCg0KTG9zIGluZGljYWRvcmVzIHNlbGVjY2lvbmFkb3MgZnVlcm9uOjxicj48YnI+DQomYnVsbDsgPGI+UElCIHBlciBjw6FwaXRhIChVU0QgYWN0dWFsZXMpPC9iPiDigJMgPGk+TlkuR0RQLlBDQVAuQ0Q8L2k+PGJyPg0KJmJ1bGw7IDxiPkVzcGVyYW56YSBkZSB2aWRhIGFsIG5hY2VyIChhw7Fvcyk8L2I+IOKAkyA8aT5TUC5EWU4uTEUwMC5JTjwvaT48YnI+DQomYnVsbDsgPGI+VGFzYSBkZSBhbGZhYmV0aXphY2nDs24gKCUgZGUgYWR1bHRvcyk8L2I+IOKAkyA8aT5TRS5BRFQuTElUUi5aUzwvaT48YnI+DQomYnVsbDsgPGI+RW1pc2lvbmVzIGRlIENP4oKCICh0b25lbGFkYXMgcGVyIGPDoXBpdGEpPC9iPiDigJMgPGk+RU4uQVRNLkNPMkUuUEM8L2k+PGJyPg0KJmJ1bGw7IDxiPlBvYmxhY2nDs24gdG90YWw8L2I+IOKAkyA8aT5TUC5QT1AuVE9UTDwvaT48YnI+DQomYnVsbDsgPGI+UG9yY2VudGFqZSBkZSBhY2Nlc28gYSBzZXJ2aWNpb3MgYsOhc2ljb3M8L2I+IOKAkyA8aT5TSC5IMk8uQkFTVy5aUzwvaT4NCjwvc3Bhbj4NCg0KPGJyPjxicj48aHI+PGJyPg0KDQo8c3BhbiBzdHlsZT0iY29sb3I6IzJjM2U1MDsgZm9udC1zaXplOjI2cHg7IGZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyI+PGI+NCkgQW7DoWxpc2lzIFVuaWRpbWVuc2lvbmFsPC9iPjwvc3Bhbj4NCg0KPGJyPjxicj4NCg0KIyAxLiBEaXN0cmlidWNpw7NuIGRlbCBQSUIgcGVyIGPDoXBpdGEgKDIwMjIpDQoNCmBgYHtyfQ0Kc291cmNlKCJoaXN0b2dyYW1hUElCMS5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQo8Yj5EaXN0cmlidWNpw7NuOjwvYj4gU2Ugb2JzZXJ2YSB1bmEgZGlzdHJpYnVjacOzbiBhc2ltw6l0cmljYSBoYWNpYSBsYSBkZXJlY2hhLjxicj48YnI+DQoNCjxiPlRlbmRlbmNpYSBnZW5lcmFsOjwvYj48YnI+DQpMYSBtYXlvcsOtYSBkZSBsb3MgcGHDrXNlcyB0aWVuZW4gdW4gUElCIHBlciBjw6FwaXRhIGluZmVyaW9yIGEgbG9zICQxMCwwMDAgVVNELjxicj4NClVuIG7Dum1lcm8gcmVkdWNpZG8gZGUgcGHDrXNlcyBjb21vIFN1aXphLCBOb3J1ZWdhLCBDYXRhciB5IEVzdGFkb3MgVW5pZG9zIG11ZXN0cmFuIG5pdmVsZXMgZXh0cmVtYWRhbWVudGUgYWx0b3MgKD42MCwwMDAgVVNEKS48YnI+PGJyPg0KDQpFc3RvIHJlZmxlamEgbGEgPGI+ZGVzaWd1YWxkYWQgZWNvbsOzbWljYSBnbG9iYWw8L2I+LCBkb25kZSBtdWNob3MgcGHDrXNlcyBzaWd1ZW4gZW4gZGVzYXJyb2xsbyBtaWVudHJhcyBxdWUgdW5hIG1pbm9yw61hIHBvc2VlIGVjb25vbcOtYXMgYWx0YW1lbnRlIGRlc2Fycm9sbGFkYXMuDQo8L3NwYW4+DQoNCjxicj48YnI+DQoNCiMgMi5Fc3BlcmFuemEgZGUgVmlkYSBwb3IgUmVnacOzbiAoMjAyMikNCg0KYGBge3J9DQpzb3VyY2UoImJveHBsb3RWaWRhUmVnaW9uMi5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQo8Yj5EaXN0cmlidWNpw7NuIGdlbmVyYWw6PC9iPjxicj4NCkxhIGdyw6FmaWNhIGRlIHRpcG8gYm94cGxvdCBtdWVzdHJhIGxhcyBkaWZlcmVuY2lhcyBlbiBsYSBlc3BlcmFuemEgZGUgdmlkYSBhbCBuYWNlciBlbnRyZSByZWdpb25lcyBnZW9ncsOhZmljYSBlbiBlbCBhw7FvIDIwMjIuPGJyPjxicj4NCg0KTGEgdmlzdWFsaXphY2nDs24gcGVybWl0ZSBleHBsb3JhciBsYSB2YXJpYWJpbGlkYWQgeSBsYXMgZGlmZXJlbmNpYXMgZW4gbGEgZXNwZXJhbnphIGRlIHZpZGEgZW4gZGlzdGludGFzIHBhcnRlcywgZGVzdGFjYW5kbyB0YW50byBsb3MgdmFsb3JlcyBjZW50cmFsZXMgY29tbyBsb3MgdmFsb3JlcyBhdMOtcGljb3MgZW4gY2FkYSByZWdpw7NuLg0KDQoNClNlIG9ic2VydmEgcXVlIGxhcyByZWdpb25lcyBkZSBFdXJvcGEgeSBBbcOpcmljYSBkZWwgTm9ydGUgdGllbmVuIHVuIHJhbmdvIGRlIGVzcGVyYW56YSBkZSB2aWRhIGJhc3RhbnRlIGFsdG8geSBlc3RyZWNobywgbWllbnRyYXMgcXVlIMOBZnJpY2EgU3Vic2FoYXJpYW5hIG11ZXN0cmEgdW5hIG1heW9yIGRpc3BlcnNpw7NuIHkgdmFsb3JlcyBtw6FzIGJham9zLjxicj48YnI+DQoNCjxiPlZhbG9yZXMgZXh0cmVtb3MgKG91dGxpZXJzKTo8L2I+PGJyPg0KU2UgcHVlZGVuIGlkZW50aWZpY2FyIGFsZ3VuYXMgcmVnaW9uZXMgY29uIHZhbG9yZXMgYXTDrXBpY29zLCBjb21vIHBhw61zZXMgY29uIG5pdmVsZXMgZXh0cmVtYWRhbWVudGUgYWx0b3MgZGUgZXNwZXJhbnphIGRlIHZpZGEgKHBvciBlamVtcGxvLCBlbiBFdXJvcGEgbyBBbcOpcmljYSBkZWwgTm9ydGUpLjxicj48YnI+DQoNCjxiPlRlbmRlbmNpYSBnZW5lcmFsOjwvYj48YnI+DQpSZWdpb25lcyBjb21vIMOBZnJpY2EgU3Vic2FoYXJpYW5hIHkgQXNpYSBNZXJpZGlvbmFsIHRpZW5lbiB1bmEgbWVkaWEgZGUgZXNwZXJhbnphIGRlIHZpZGEgbcOhcyBiYWphIHkgdW5hIGdyYW4gZGlzcGVyc2nDs24sIGxvIHF1ZSBpbmRpY2EgZGlzcGFyaWRhZGVzIHNpZ25pZmljYXRpdmFzIGVudHJlIGxvcyBwYcOtc2VzIGRlbnRybyBkZSBlc3RhcyByZWdpb25lcy4NCjwvc3Bhbj4NCg0KPGJyPjxicj4NCg0KIyAzLiBHcsOhZmljbyBkZSBEZW5zaWRhZCBkZWwgQ0/igoINCg0KYGBge3J9DQpzb3VyY2UoImdyYWZpY29EZW5zaWRhZENPMl8zLlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCg0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQo8Yj4gTXVlc3RyYSBsYSBkaXN0cmlidWNpw7NuIGRlIGxhcyBlbWlzaW9uZXMgZGUgQ0/igoIgcGVyIGPDoXBpdGEgKGV4Y2x1eWVuZG8gTFVMVUNGKSBhIG5pdmVsIGdsb2JhbCBwYXJhIGVsIGHDsW8gMjAyMiBxdWUgcGVybWl0ZSB1bmEgZXhwbG9yYWNpw7NuIHZpc3VhbCBpbnRlcmFjdGl2YSB5IGRldGVjdGFyIHBhw61zZXMgY29uIGVtaXNpb25lcyBpbnVzdWFsbWVudGUgYWx0YXMuDQouPC9iPg0KDQo8Yj5EaXN0cmlidWNpw7NuOjwvYj4gQWx0YW1lbnRlIGFzaW3DqXRyaWNhIGNvbiB1bmEgbGFyZ2EgY29sYSBoYWNpYSBsYSBkZXJlY2hhLjxicj48YnI+DQoNCg0KDQo8Yj5UZW5kZW5jaWEgZ2VuZXJhbDo8L2I+PGJyPg0KTGEgbWF5b3LDrWEgZGUgcGHDrXNlcyBlbWl0ZW4gbWVub3MgZGUgNSB0b25lbGFkYXMgZGUgQ0/igoIgcGVyIGPDoXBpdGEuPGJyPg0KQ2Fzb3MgZXh0cmVtb3MgY29tbyBDYXRhciB5IEVtaXJhdG9zIMOBcmFiZXMgVW5pZG9zIHN1cGVyYW4gbGFzIDI1IHRvbmVsYWRhcywgZGVzdGFjYW5kbyBjb21vIDxiPm91dGxpZXJzPC9iPi48YnI+PGJyPg0KDQpFc3RvIHJlZmxlamEgdW5hIDxiPmVub3JtZSBkZXNpZ3VhbGRhZDwvYj4gZW4gdMOpcm1pbm9zIGRlIDxiPnJlc3BvbnNhYmlsaWRhZCBhbWJpZW50YWw8L2I+IHkgZGVzYXJyb2xsbyBlY29uw7NtaWNvLg0KPC9zcGFuPg0KDQo8YnI+PGJyPg0KDQojIDQuIFNjYXR0ZXJQbG90IGRlbCBQSUIgdnMgbGEgRXNwZXJhbnphIGRlIFZpZGENCg0KYGBge3J9DQpzb3VyY2UoIlNjYXR0ZXJQbG90UElCdnNFc3BlcmFuemFWaWRhNC5SIiwgbG9jYWwgPSBrbml0cjo6a25pdF9nbG9iYWwoKSkNCmBgYA0KDQo8c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6J1RpbWVzIE5ldyBSb21hbic7IGZvbnQtc2l6ZToxNnB4OyI+DQoNCjxiPkVsIG9iamV0aXZvIGRlIGVzdGUgU2NhdHRlclBsb3QgZXMgdmVyIGxhIHJlbGFjacOzbiBlbnRyZSBlbCBQcm9kdWN0byBJbnRlcm5vIEJydXRvIChQSUIpIHBlciBjw6FwaXRhIHkgbGEgZXNwZXJhbnphIGRlIHZpZGEgYWwgbmFjZXIgZW4gZWwgYcOxbyAyMDIyLiBFc3RlIHBlcm1pdGUgaWRlbnRpZmljYXIgcGF0cm9uZXMgeSBleGNlcGNpb25lcyBlbnRyZSBwYcOtc2VzLg0KIDwvYj4NCg0KPGI+VGVuZGVuY2lhczo8L2I+DQoNClNlIG9ic2VydmEgdW5hIDxiPmNvcnJlbGFjacOzbiBwb3NpdGl2YTwvYj46IGxvcyBwYcOtc2VzIGNvbiBtYXlvciBQSUIgcGVyIGPDoXBpdGEgdGllbmRlbiBhIHRlbmVyIHVuYSBtYXlvciBlc3BlcmFuemEgZGUgdmlkYS48YnI+PGJyPg0KDQpFeGlzdGVuIGV4Y2VwY2lvbmVzIG5vdGFibGVzLCBjb21vIEVzdGFkb3MgVW5pZG9zLCBxdWUgdGllbmUgdW4gUElCIGFsdG8gcGVybyB1bmEgZXNwZXJhbnphIGRlIHZpZGEgbcOhcyBiYWphIGVuIGNvbXBhcmFjacOzbiBjb24gb3Ryb3MgcGHDrXNlcyBkZSBpbmdyZXNvIHNpbWlsYXIuPGJyPjxicj4NCg0KTGEgPGI+ZXNjYWxhIGxvZ2Fyw610bWljYTwvYj4gcGVybWl0ZSBvYnNlcnZhciBjb24gbWF5b3IgY2xhcmlkYWQgbG9zIHBhw61zZXMgZGUgYmFqb3MgeSBtZWRpYW5vcyBpbmdyZXNvcywgcXVlIGRlIG90cm8gbW9kbyBxdWVkYXLDrWFuIGFncnVwYWRvcy4NCg0KTGEgcmVsYWNpw7NuIHN1Z2llcmUgcXVlIGxhIHJpcXVlemEgcGVybWl0ZSBpbnZlcnNpw7NuIGVuIHNhbHVkLCBlZHVjYWNpw7NuIHkgc2VydmljaW9zIGLDoXNpY29zLCBwZXJvIG5vIHNpZW1wcmUgc2UgdHJhZHVjZSBkaXJlY3RhbWVudGUgZW4gbWVqb3Igc2FsdWQgKGNvbW8gZW4gRUUuVVUuIHBvciBkZXNpZ3VhbGRhZGVzIGludGVybmFzIHkgc2lzdGVtYSBkZSBzYWx1ZCBpbmVmaWNpZW50ZSkuDQo8L3NwYW4+DQoNCg0KDQoNCg0KDQojIDUuIEJ1YmJsZVBsb3QgQWxmYWJldGl6YWNpw7NuLCBBZ3VhIHkgUG9ibGFjacOzbiAoMjAyMikNCg0KYGBge3J9DQpzb3VyY2UoImJ1YmJsZVBsb3RBbGZhYmV0aXphY2lvbkFjY2Vzb0Jhc2ljbzUuUiIsIGxvY2FsID0ga25pdHI6OmtuaXRfZ2xvYmFsKCkpDQpgYGANCg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyBmb250LXNpemU6MTZweDsiPg0KTGEgYWxmYWJldGl6YWNpw7NuIGltcHVsc2EgbWVqb3JlcyBwcsOhY3RpY2FzIGRlIGhpZ2llbmUgeSBzYWx1ZC4gU2luIGVtYmFyZ28sIGxhIGRlbnNpZGFkIHBvYmxhY2lvbmFsIHkgbGEgZ29iZXJuYW56YSBpbmZsdXllbiBlbiBlbCBhY2Nlc28gYWwgYWd1YS4NCg0KUmVsYWNpw7NuIHBvc2l0aXZhIGdlbmVyYWw6IFBhw61zZXMgbcOhcyBhbGZhYmV0aXphZG9zIHRpZW5lbiBtZWpvciBhY2Nlc28gYSBhZ3VhLg0KDQpFeGNlcGNpb25lcyBlbiBwYcOtc2VzIGRlIGFsdGEgcG9ibGFjacOzbjogQWxndW5vcyBwYcOtc2VzIGdyYW5kZXMgZW5mcmVudGFuIHJldG9zIGVuIGNvYmVydHVyYSBkZSBzZXJ2aWNpb3MuDQoNCjwvc3Bhbj4NCg0KIyA2Lkdyw6FmaWNvIGludGVyYWN0aXZvIGVuIDNEOiBQSUIgcGVyIGPDoXBpdGEsIENP4oKCIHBlciBjw6FwaXRhIHkgZXNwZXJhbnphIGRlIHZpZGENCg0KYGBge3J9DQpzb3VyY2UoImdyYWZpY28zRE11bHRpZGltZW5zaW9uYWw2LlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCg0KPHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5OidUaW1lcyBOZXcgUm9tYW4nOyBmb250LXNpemU6MTZweDsiPg0KUGHDrXNlcyByaWNvcyBhbHRhIGVtaXNpw7NuIHkgYWx0YSBlc3BlcmFuemEgZGUgdmlkYS4NCg0KRWplbXBsb3Mgc29zdGVuaWJsZXMgPGI+IENvc3RhIFJpY2EgPC9iPiBjb24gYmFqYSBlbWlzacOzbiB5IGFsdGEgc2FsdWQuDQoNCjxiPkhhbGxhemdvOjwvYj4gUGHDrXNlcyByaWNvcyBjb21vIEVFLlVVLiwgQ2FuYWTDoSB5IGxvcyBkZWwgR29sZm8gcHJlc2VudGFuIGFsdGFzIGVtaXNpb25lcyBjb24gYWx0byBQSUIuIEFsZ3Vub3MgcGHDrXNlcyBjb21vIENvc3RhIFJpY2EgbXVlc3RyYW4gYWx0YSBlc3BlcmFuemEgZGUgdmlkYSBjb24gbWVub3IgaW1wYWN0byBhbWJpZW50YWwsIGRlc3RhY2FuZG8gY29tbyBjYXNvcyBkZSBkZXNhcnJvbGxvIHNvc3RlbmlibGUuDQoNCk11ZXN0cmEgZWwgZGlsZW1hIGVudHJlIGRlc2Fycm9sbG8gZWNvbsOzbWljbyB5IHNvc3RlbmliaWxpZGFkIGFtYmllbnRhbCwgcGVybyB0YW1iacOpbiBkZXN0YWNhIHF1ZSBlcyBwb3NpYmxlIHVuIGRlc2Fycm9sbG8gbWVub3MgY29udGFtaW5hbnRlIHNpIHNlIHByaW9yaXphbiBwb2zDrXRpY2FzIHZlcmRlcy4NCg0KDQo8L3NwYW4+DQoNCiMgNy5GYWNldCBncmlkOiBFdm9sdWNpw7NuIGRlbCBQSUIgcGVyIGPDoXBpdGEgKDIwMDDigJMyMDIyKSBwb3IgcmVnacOzbg0KDQpgYGB7cn0NCnNvdXJjZSgiZmFjZUdyaWRFdm9QSUJwb3JSZWdpb243LlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCg0KPGI+VGVuZGVuY2lhczo8L2I+DQpBc2lhIE9yaWVudGFsIChlai4gQ2hpbmEpOiBjcmVjaW1pZW50byBhY2VsZXJhZG8uDQoNCsOBZnJpY2E6IGNyZWNpbWllbnRvIG3DoXMgbGVudG8gbyBlc3RhbmNhZG8uDQoNClNlIHV0aWxpemEgZmFjZXRfd3JhcCgpIHBhcmEgbW9zdHJhciBtaW5pIGzDrW5lYXMgZGUgdGllbXBvIHBvciByZWdpw7NuLg0KDQo8Yj5IYWxsYXpnb3M6PC9iPg0KQXNpYSBPcmllbnRhbCBoYSB0ZW5pZG8gdW4gY3JlY2ltaWVudG8gZXhwbG9zaXZvICwgbWllbnRyYXMgcXVlIHJlZ2lvbmVzIGNvbW8gw4FmcmljYSBoYW4gbW9zdHJhZG8gZXN0YW5jYW1pZW50by4NCg0KRWwgY3JlY2ltaWVudG8gYXNpw6F0aWNvIHJlc3BvbmRlIGEgaW5kdXN0cmlhbGl6YWNpw7NuLCBjb21lcmNpbyBleHRlcmlvciB5IHBvbMOtdGljYXMgZGUgaW52ZXJzacOzbi4gw4FmcmljYSBlbmZyZW50YSBkZXNhZsOtb3MgZXN0cnVjdHVyYWxlcyBwZXJzaXN0ZW50ZXMuDQoNCjwvc3Bhbj4NCg0KIyA4LlBhbmVsIGNvbWJpbmFkbzogIEV2b2x1Y2nDs24gZGVsIFBJQiBwZXIgY8OhcGl0YSAoZW4gZMOzbGFyZXMpIGRlIDIwMDAgaGFzdGEgMjAyMSBlbiBzZWlzIHBhw61zZXMgZGUgQ2VudHJvYW3DqXJpY2EuDQoNCmBgYHtyfQ0Kc291cmNlKCJJbWFnZW5Db21wdWVzdGE4LlIiLCBsb2NhbCA9IGtuaXRyOjprbml0X2dsb2JhbCgpKQ0KYGBgDQoNCjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTonVGltZXMgTmV3IFJvbWFuJzsgZm9udC1zaXplOjE2cHg7Ij4NCg0KPGI+Q29zdGEgUmljYSwgTmljYXJhZ3VhLCBQYW5hbcOhLCBHdWF0ZW1hbGEsIEhvbmR1cmFzIHkgRWwgU2FsdmFkb3IuPC9iPg0KDQpDYWRhIHVuYSBkZSBsYXMgY3VhdHJvIGdyw6FmaWNhcyByZXByZXNlbnRhIHVuYSBjb21wYXJhY2nDs24gdmlzdWFsIGVudHJlIGVzdG9zIHBhw61zZXMgZGVzZGUgdW5hIHBlcnNwZWN0aXZhIGRpZmVyZW50ZSwgcGVybyB0b2RhcyB1c2FuZG8gZWwgbWlzbW8gaW5kaWNhZG9yIGVjb27Ds21pY28gY2xhdmUuDQoNCjxiPkZ1bmNpw7NuIGRlIGxhIGltYWdlbiBjb21wdWVzdGE6PC9iPg0KDQo8Yj4rPC9iPiBBbmFsaXphciBsYSBldm9sdWNpw7NuIGVjb27Ds21pY2EgZGUgQ2VudHJvYW3DqXJpY2EgZGUgZm9ybWEgY29tcGFyYXRpdmEuDQoNCjxiPis8L2I+IElkZW50aWZpY2FyIHF1w6kgcGHDrXNlcyBoYW4gdGVuaWRvIG1heW9yIGNyZWNpbWllbnRvIGVuIFBJQiBwZXIgY8OhcGl0YS4NCg0KPGI+KzwvYj4gRXhwbG9yYXIgdGVuZGVuY2lhcywgcmVwdW50ZXMgeSBjYcOtZGFzIGVjb27Ds21pY2FzIGEgbG8gbGFyZ28gZGVsIHRpZW1wby4NCg0KPGI+KzwvYj4gT2ZyZWNlciB1bmEgdmlzdWFsaXphY2nDs24gaW50ZXJhY3RpdmEsIMO6dGlsIHBhcmEgZXN0dWRpb3MgYWNhZMOpbWljb3MsIHBvbMOtdGljYXMgcMO6YmxpY2FzIG8gYW7DoWxpc2lzIGVjb27Ds21pY28uDQoNCk9ic2VydmFjaW9uZXMgZGUgbGEgaW1hZ2VuOg0KDQo8Yj5EZXNpZ3VhbGRhZCByZWdpb25hbDogPC9iPiBQYW5hbcOhIHkgQ29zdGEgUmljYSBjb25zaXN0ZW50ZW1lbnRlIHRpZW5lbiB1biBQSUIgcGVyIGPDoXBpdGEgbcOhcyBhbHRvIHF1ZSBlbCByZXN0byBkZSBsYSByZWdpw7NuLCBsbyBxdWUgc3VnaWVyZSBtYXlvcmVzIG5pdmVsZXMgZGUgaW5ncmVzbyBwcm9tZWRpbyBwb3IgcGVyc29uYS4NCg0KPGI+Q3JlY2ltaWVudG8gZGVzaWd1YWw6IDwvYj4gQXVucXVlIHRvZG9zIGxvcyBwYcOtc2VzIG11ZXN0cmFuIGNyZWNpbWllbnRvIGEgbG8gbGFyZ28gZGUgbG9zIGHDsW9zLCBoYXkgbWFyY2FkYXMgZGlmZXJlbmNpYXMgZW4gbGEgdmVsb2NpZGFkIHkgZXN0YWJpbGlkYWQgZGVsIG1pc21vLg0KDQo8Yj5FZmVjdG9zIGRlIGV2ZW50b3MgZ2xvYmFsZXM6PC9iPiBQb3IgZWplbXBsbywgc2UgcHVlZGUgb2JzZXJ2YXIgdW4gaW1wYWN0byBlbiB0b2RvcyBsb3MgcGHDrXNlcyBkdXJhbnRlIGVsIGHDsW8gMjAyMCAocGFuZGVtaWEpLCBzZWd1aWRvIGRlIHVuYSByZWN1cGVyYWNpw7NuIGRpc3Bhci4NCg0KPGI+Q2Fzb3MgZXNwZWPDrWZpY29zOjwvYj4gTmljYXJhZ3VhIG11ZXN0cmEgdW4gY3JlY2ltaWVudG8gbcOhcyBsZW50bywgbWllbnRyYXMgcXVlIFBhbmFtw6EgZGVzdGFjYSBjb24gdW5hIGN1cnZhIG3DoXMgZW1waW5hZGEgaGFzdGEgMjAxOS4NCg0KDQoNCjwvc3Bhbj4NCg0KIyBDb25jbHVzaW9uZXMNCg0KRXhpc3RlIHVuYSBjbGFyYSByZWxhY2nDs24gZW50cmUgZWwgaW5ncmVzbyBlY29uw7NtaWNvIGRlIHVuIHBhw61zIHkgbG9zIGluZGljYWRvcmVzIGRlIHNhbHVkIHkgZWR1Y2FjacOzbiBxdWUgZXhpc3RlbiBlbiBlbCBtaXNtby4NCg0KDQpBIHBlc2FyIGRlIHRvZG8sIGVsIGNyZWNpbWllbnRvIGVjb27Ds21pY28gbm8gc2llbXByZSBpbXBsaWNhIHNvc3RlbmliaWxpZGFkIGFtYmllbnRhbCBlbiB1bmEgcmVnacOzbiBvIHBhw61zOiBoYXkgcGHDrXNlcyBxdWUgZW1pdGVuIG11Y2hvIENP4oKCIHBvciBzdSBlc3RpbG8gZGUgdmlkYSBpbmR1c3RyaWFsIHkgcXVlIGEgc3VzIGdvYmllcm5vcyBubyBsZXMgaW50ZXJlc2EgbWl0aWdhciBsb3MgZWZlY3RvcyBxdWUgZXN0b3MgdGllbmVuLg0KDQoNClNlIGlkZW50aWZpY2Fyb24gY2Fzb3MgZXhpdG9zb3MgZGUgZGVzYXJyb2xsbyBlcXVpbGlicmFkbywgY29tbyBDb3N0YSBSaWNhIG8gVmlldG5hbSwgcXVlIHN1cyBpbmRpY2Fkb3JlcyByZWZsZWphbiBxdWUgYWxjYW56YSB1biBhbHRvIGJpZW5lc3RhciBzaW4gZWxldmFkbyBjb25zdW1vIGRlIHJlY3Vyc29zLg0KDQpUZW1hcyBkZSBpbnRlcsOpcyBjb21vIGVzdG9zIG5vcyBwdWVkZW4gZGFyIHBlcnNwZWN0aXZhIGRlIGPDs21vIGZ1bmNpb25hIGVsIG11bmRvLCB5IGNvbW8gbG9zIHBhw61zZXMgZ2VzdGlvbmFuIHJlY3Vyc29zIHkgY8OzbW8gZXN0byBhZmVjdGEgYSBzdSBtaXNtYSBwb2JsYWNpw7NuIGVuIHN1IGVzdGlsbyBkZSB2aWRhIHkgZW4gZWwgdGlwbyBkZSBhbWJpZW50ZSBxdWUgc2UgZGVzYXJyb2xsYW4NCg0KRGUgZm9ybWEgZGVsIHByb3llY3RvOg0KDQpFbCBzdG9yeXRlbGxpbmcgeSBsYSB2aXN1YWxpemFjacOzbiBpbnRlcmFjdGl2YSBwZXJtaXRlbiB0cmFuc2Zvcm1hciBkYXRvcyBjb21wbGVqb3MgZW4gaGlzdG9yaWFzIGNvbXByZW5zaWJsZXMgcGFyYSB0b2RvIHDDumJsaWNvLg0KDQoNCg==